finish main work
now adding OC compat
Added basic OC support