initial commit with new mixin pre_methods