maybe my final solution - hopefully