Initial commit - barebones abstract class