spec and implement homepage