Object rewrite

pulling from main project