updating based on @wasade's feedback