abstract object builder 2