declarations first