Do not hash public/private if empty

We should not even create both, actually.
Fix enclosing environment bug when creating classes
Set the object's env to private

This way we only need two environments, one for public,
one for private.