add -W for warnings
add author
add implementation