Coded everythin, not tested