function declarations and definitions seem to be working