my first actual go at this.