Add fundamental features

https://docs.google.com/document/d/12UWSGW6xdiesrXa2CBZ2wjIFYs1y-to1ut59
RxwlT80/edit