initial commit with basic functionality