better implementation, yo