pushing my first draft of basic functionality