cleaned up for actual use