towards type-safety... getting closer.