create and edit generic