basic edit functionality