the code is just ugly