working copy with added timer object
finally more or less clean