add initialize method, still untested