still need changes but works