include memory and define constructors
call base constructor