fixed basically everything