editing/adding functionality mostly done