some normal functions