Adding initial implementation