first version with basic structor.