Building an n-tier layered architecture