Initial version

with initial functions