ghetto, but the functionality is there