base skeleton code