new and buggy as hell implementation.