[BROKEN] Splitting logic to make it easier to implement

All functionalities are broken or not implemented!