edit: let me clean this up a tad