Revert "Revert "Scene & Layer code""

This reverts commit 568e9ba5dd0d2a60f685759dc189309643db79cf.