some playing around with types. need global event architecture to proceed