initial function stubs
additional function stub
added input checking for 'best' function
split to multiple files
best complete, passes submission tests