First try - code will be cleaned up the next days