final
buncha shit added but not working all the way