Initial commit towards StatePattern