added public/private/internal modifers