using proper functions