base skeleton and a few test functions