type check and some other shit
commit die shit
merge