update, bugged, will explain