Initial code check-in with basic tests. Currently only supports basic non-member functions.