added abstract form to make it service aware