base for new object architecture