logic should be complete now