implemented period class