Initial version

Work is still in progress!