updated with fixed shit