features and layers refactioring