a version which can be used
This is a runnable program