entry point for scala