try out some new code structure ideas