Big refactor, implementing IMeta, IObj