Following system

Does compile but not tested and very probably not working