added private and non public things