Reverted to Module, fixed all visibility