simplified core with some getter/setter functions