reference counting

define initial interface