add and edit shitty functionality, but works, needs a lot of refinement