slightly cleaned up code (thanks to matteo)