resubmitting overwritten functions :(