workson #28
ugly solution; needs refactoring