Everything is implemented, few more bugs to fix