add work functionality