This is a big task and would involve large refactorings of less. This issue is created to take over #868 which is not suitable to pull.