was stupid to think I needed to use static
added methods and an interface to play nice if misused