Copyright (c) 2017 by Peter Wiegel. All rights reserved.